<?php
/**
 * Elgg album: multi image edit action
 *
 * This is called when uploading images
 */

// Make sure we're logged in 
gatekeeper();

// Get input data
$title_array = get_input('title');
$caption_array = get_input('caption');
$tags_array = get_input('tags');
$image_guid_array = get_input('image_guid');
$container_guid = get_input('container_guid');
$album_entity = get_entity($container_guid);
$cover = get_input('cover');
$not_updated = array();

foreach($image_guid_array as $key => $im) {
	$image = get_entity($im);

	if ($image->canEdit()) {

		// Convert string of tags into a preformatted array
		$tagarray = string_to_tag_array($tags_array[$key]);

		//set title appropriately
		if ($title_array[$key]) {
			$image->title = $title_array[$key];
		} else {
			$image->title = substr($image->originalfilename, 0, strrpos($image->originalfilename, '.'));
		}

		//set description appropriately
		$image->description = $caption_array[$key];

		// Before we can set metadata, we need to save the image
		if (!$image->save()) {
			array_push($not_updated, $image->guid);
		}

		// Now let's add tags. We can pass an array directly to the object property! Easy.
		$image->clearMetadata('tags');
		if (is_array($tagarray)) {
			$image->tags = $tagarray;
		}

		//if cover meta is sent from image save as metadata
		if ($cover == $im) {
			$album_entity->setCoverImageGuid($im);
		}
	}
}

// Success message
if (count($not_updated) > 0) {
	register_error(elgg_echo("images:notedited"));
} else {
	system_message(elgg_echo("images:edited"));
}

// Forward to the main album page
forward($album_entity->getURL());
